Conversation
See ticket #12457
|
Could you please describe your changes? In particular I'm interested why you removed |
|
The sparc_v9 check will work only for 64 bit compilation, not for 32 Thanks. On 09/14/16 09:48, Andrey Semashev wrote:
|
|
But the implementation does seem to require a 64-bit mode, as it uses |
|
Also, according to this Oracle Studio 12.5 does support both |
|
I just confirmed that SPARCv8 does not support Regarding the change for x86. As I said earlier, it should be handled by the backend based on the |
|
$CC -c 1.cc -xdumpmacros -m32 2> dump_m32_x86.txt On 09/14/16 11:32, Andrey Semashev wrote:
|
|
That is not enough. Please, provide all predefined macros. You can attach the output of these commands to the ticket, if you like. |
|
Would you want me to resubmit the fix with the |sparc_v9 reverted back? |
|
|
The |
|
I've attached the files to the ticket. On 09/14/16 12:29, Andrey Semashev wrote:
|
|
Thank you. It looks like the compiler does not define any macros to detect the size of the natively supported atomic operations. It also does not allow to deduce the target CPU arch for x86. I've committed a few changes to develop so that the compiler should be using asm backends for gcc. For x86 dcas and mfence are assumed to be supported by default. I've also enabled support for SPARCv8+ as apparently it's the same as SPARCv9 but for 32 bits. |
|
Hmm. Looks like I accidentally uploaded the wrong files :-(. I apologize On 09/14/16 15:25, Andrey Semashev wrote:
|
|
The new files contain many more macros, including some that are defined by Boost and system headers. They also contain the |
|
Initially when I sent out the list of predefined macros for each Btw, I submit the Oracle Developer Studio Nightly regression results, in On 09/15/16 01:41, Andrey Semashev wrote:
|
What I called "predefined macros" are the macros that the compiler defines by itself before any source is processed. And in that sense the output of In your latest files there are
Ok, thanks. Thing is, Boost 1.62 release is nearing and I would like to have some confirmation that my latest changes at least didn't break anything or more preferably fixed the problem with Oracle Studio. The test results in Boost test matrix do update with a long delay (some of the results I see now are more than 2 weeks old), so I don't think the regular tests will make it in time by the end of the week. Could you run the tests on the current develop, at least selectively, to see what changed? |
|
I should add that I also modified Boost.Log to not fail completely if Boost.Atomic does not support 32-bit atomic ops. So the test results will definitely change and most likely not include the error about Boost.Atomic. What is expected is (a) both Boost.Atomic and Boost.Log build successfully and (b) the "- native-atomic-int32-supported :" line in the beginning of the test log says "yes". This would mean Boost.Atomic is providing 32-bit atomics and Boost.Log is using them. |
|
On 09/15/16 08:54, Andrey Semashev wrote:
When compiling with -std=c++11/-std=c++03, __GCC_ATOMIC macros are $CC -std=c++11 test.cc -xdumpmacros 2> dumpmacro.txt
|
|
I see, so it defines the macros but only in C++11 mode. I guess I could modify platform.hpp to make use of the macros when they are defined, although it looks like this way DCAS support won't be detected (the compiler does not define |
|
On 09/15/16 08:54, Andrey Semashev wrote:
|
|
I did merge the changes to master. The SPARC testers look green, but apparently some Intel tests started failing. I can't see what's wrong with them because the test log contains only the exit code. http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-12-5_next-cpp11-boost-bin-v2-libs-atomic-test-ordering-test-sun-12-5_next_cpp11-release-threading-multi.html Do you know what that means? I think 1.62 will have to do with the current version anyway - it's too late now. |
See ticket #12457